//导入express包
const express = require('express');
// 导入Ejs
const ejs=require('ejs');
// 导入json文件
const {singers} = require('./singer/singers.json');
//创建应用对象
const obj = express();
// 导入fs
const fs=require('fs');
//导入find方法
const find = require('./find.js')//.require('模块的路径')  可以不写后缀

// 读取index.html文件
let indexStr=fs.readFileSync(__dirname+'/note.ejs').toString();

// 创建路由规则 (obj.get - get方法表示请求的方法是get)
obj.get('/singer/:id.html', ((req, res) => {
    // 设置头部
    res.setHeader('content-type', 'text/html;charset=utf-8');
    // 获取路由参数
    //回去请求的id参数
    let {id} = req.params;
    //将singers对象的值转换为数组
    let singersArr = Object.values(singers);
    // 如果查询的id大于了singer用户的长度就404;
    if (singersArr.length < id) {
        res.statusCode = 404;
        res.end("<h2>404 Not Found!!</h2>")
    } else {
        //调用find函数获取对应的id数据
        let singerName = find.find(singersArr, id).singer_name
        let singerAge = find.find(singersArr, id).singer_age

        // 设置响应体
        // 使用ejs渲染
        let result=ejs.render(indexStr,{singerName: singerName,singerAge: singerAge})
        res.end(result);
    }
}));

// 启动服务
obj.listen(9000, () => {
    console.log('The service has already been opened!!!');
});